package com.zhentao.ai.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 性能指标
 * @author zhentao
 * @date 2024-12-19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PerformanceMetrics {
    
    /**
     * 响应时间列表 (毫秒)
     */
    private List<Double> responseTimes;
    
    /**
     * 平均响应时间 (毫秒)
     */
    private BigDecimal averageResponseTime;
    
    /**
     * 95分位响应时间 (毫秒)
     */
    private BigDecimal p95ResponseTime;
    
    /**
     * 99分位响应时间 (毫秒)
     */
    private BigDecimal p99ResponseTime;
    
    /**
     * 最大响应时间 (毫秒)
     */
    private BigDecimal maxResponseTime;
    
    /**
     * 最小响应时间 (毫秒)
     */
    private BigDecimal minResponseTime;
    
    /**
     * 吞吐量 (请求/秒)
     */
    private BigDecimal throughput;
    
    /**
     * 错误率 (0-1之间)
     */
    private BigDecimal errorRate;
    
    /**
     * CPU利用率 (0-1之间)
     */
    private BigDecimal cpuUtilization;
    
    /**
     * 内存利用率 (0-1之间)
     */
    private BigDecimal memoryUtilization;
    
    /**
     * 缓存命中率 (0-1之间)
     */
    private BigDecimal cacheHitRate;
    
    /**
     * 数据库连接池使用率 (0-1之间)
     */
    private BigDecimal dbPoolUtilization;
}

